JNDI es un interface gen�rico. Para acceder a cualquier servicio de nombres/directorios, debemos especificar el proveedor de servicio a utilizar. Esto es s�lo una parte de la informaci�n de configuraci�n. Dependiendo del servicio de nombres/directorio y del proveedor de servicios podr�amos necesitar especificar otra informaci�n de configuraci�n, por ejemplo, decirle al proveedor de servicios que servidor utilizar. Especificamos la informacion de configuraci�n en el JNDI usando propiedades de entorno. Aunque esta secci�n describe muchas propiedades de entorno, en general s�lo necesitaremos usar una pocas.
Aqu� tenemos los distintos tipos de propiedades de entorno, categorizadas por su �mbito y aplicabilidad.
�Propiedades Est�ndar de Entorno JNDI
El JNDI define propiedades de entorno que son est�ndars para todos los proveedores de servicios. No todas las propiedades est�ndars se pueden aplicar a todos los proveedores de servicios. Pero cuando un proveedor de servicios usa una de estas propiedades, debe interpretarla de acuerdo a la definici�n especificada por el JNDI.
Estas propiedades tienen el prefijo "java.naming." Los interfaces Context y LdapContext declaran constantes para estas propiedades. Aqu� tenemos una lista de las propiedades est�ndars de entorno JNDI.
| Property Name | Description |
|---|---|
| java.naming.applet | Un ejemplar de java.applet.Applet. Los par�metros de este
ejemplar de applet se usan como ciertas propiedades de entono. Ver la siguiente
secci�n para m�s detalles.
Constante: Context.APPLET Default: Niinguno. |
| java.naming.authoritative | Un string ("true" o "false")
que especifica la fuente autoritaria del servicio solicitado. Si seleccionamos
esta propiedad a "true", cuando le solicitamos al
proveedor de servicio la fuente de servicio m�s autoritaria (como un servidor
maestro). De otra forma, la fuente, no tiene (pero puede ser) autoritaria.
Constante: Context.AUTHORITATIVE Default: "false" |
| java.naming.batchsize | La representaci�n string de un entero que especifica el tama�o del cach�
preferido a utilizar cuando se devuelven datos mediante el protocolo del
servicio. Puedes ir a la lecci�n B�squedas
para ver m�s detalles y ejemplos.
Constante: Context.BATCHSIZE Default: Valor por defecto del proveedor. Ejemplo: "10" |
| java.naming.dns.url | Un string URL que especifica los nombres del host DNS y de dominio a usar
para la implementaci�n del contexto "jndi".
Constante: Context.DNS_URL Default: Ninguna. Ejemplo: "dns://dnsserver/wiz.com" |
| java.naming.factory.control | Una lista separa por dos puntos de nombres de clases de factor�as
de control. Cada clase debe implementar el interface ControlFactory.
Esta propiedad la usa ControlFactory.getControlInstance(), que a su vez es usado por los proveedores de servicos. Puedes ir a la lecci�n Controles y Extensiones� para ver m�s detalles. Constante: LdapContext.CONTROL_FACTORIES Default: La lista vac�a. Ejemplo: "com.wiz.jndi.ldap.ControlFactory: vendorX.ldap.VendorXControlFactory" |
| java.naming.factory.initial | Nombre de la clase de la factor�a de contexto inicial. La clase debe
implementar el interface InitialContextFactory.
Esta clase es ejemplarizada por el constructor de InitialContext. Debemos configurar esta propiedad, a menos que s�lo queramos pasar nombres URL a los m�todos de InitialContext. Constante: Context.INITIAL_CONTEXT_FACTORY Default: Ninguno. Ejemplo: "com.sun.jndi.ldap.LdapCtxFactory" |
| java.naming.factory.object | Una lista separada por dos puntos de nombres de clases Factor�as
de objetos. Cada clase debe implementar los interfaces ObjectFactory o DirObjectFactory.
Esta propiedad la usan� NamingManager.getObjectInstance() y DirectoryManager.getObjectInstance(), que su vez son usados por los proveedores de servicio. Puedes ir a la secci�n Objetos Java Objects y el Directorio para ver m�s detalles. Constante: Context.OBJECT_FACTORIES Default: La lista vac�a. Ejemplo: "com.wiz.jndi.ldap.AttrsToRemote: com.wiz.jndi.ldap.AttrsToCorba" |
| java.naming.factory.state | Una lista separada por dos puntos de nombres de clases de factor�as
de estado. Cada clase debe implementar los intefaces StateFactory o DirStateFactory.
Esta propiedad la usan NamingManager.getStateToBind() y DirectoryManager.getStateToBind(), que a su vez es usada por el proveedor del servicio. Puedes ir a la secci�n Objetos Java y el Directorio para ver m�s detalles. Constante: Context.STATE_FACTORIES Default: La lista vac�a. Ejemplo: "com.wiz.jndi.ldap.RemoteToAttrs:com.wiz.jndi.ldap.CorbaToAttrs" |
| java.naming.factory.url.pkgs | Una lista separada por dos puntos de prefijos de paquetes de factor�as de
contexto URL. El prefijo consiste en la id del esquema URL y un sufijo para
construir el nombre de la clase, de esta forma.
prefix.schemeId.schemeIdURLContextFactory Por ejemplo, supongamos que el prefijo es "vendorZ.jndi" y la id del esquema URL es "ldap", el nombre completo de la clase es vendorZ.jndi.ldap.ldapURLContextFactory. Cada clase cuyo nombre se construya de esta forma debe implementar los interfaces� ObjectFactory o DirObjectFactory y seguir las reglas de procesamiento de nombres URL. El prefijo del paquete "com.sun.jndi.url" siempre se a�ade al final de la lista especificada para esta propiedad. Esta propiedad se usa cuando un nombre de URL se pasa a los m�todos InitialContext. Puedes ir a la lecci�n URL para ver m�s informaci�n. Constante: Context.URL_PKG_PREFIXES Default: La lista vac�a. Ejemplo: com.wiz.jndi.url:vendorZ.jndi |
| java.naming.language | Un string que especifica el idioma preferido para usarlo con este servicio.
Los valores de est� propiedad est�n definidos por la RFC 1766. Constante: Context.LANGUAGE Default: El valor por defecto del proveedor. Ejemplo: "en-US" |
| java.naming.provider.url | Una string URL para configurar el proveedor de servicio especificado por la
propiedad "java.naming.factory.initial".
Constante: Context.PROVIDER_URL Default: El valor por defecto del proveedor. Ejemplo: "ldap://localhost:389/o=JNDITutorial" |
| java.naming.referral | Un string que especifica c�mo deber�a manejar las referencias el proveedor
de servicio, una de "throw", "ignore",
o "follow". Puedes ir a la lecci�n Referencias
para ver detalles y ejemplos.
Constante: Context.REFERRAL Default: El valor por defecto del proveedor. Ejemplo: "throw" |
| java.naming.security.authentication | Un string que especifica el tipo de autentifiaci�n a utilizar; uno de "none",
"simple", "strong", un
string espec�fico del proveedor. Puedes ir a la lecci�n Seguridad
para ver m�s detalles y ejemplos.
Constante: Context.SECURITY_AUTHENTICATION Default: El valor por defecto del proveedor. Ejemplo: "simple" |
| java.naming.security.credentials | Un objeto que espeifica las credenciales de la entidad que realiza la
autentificaci�n. Su tipo est� determinado por el proveedor de servicios.
Puedes ir a la lecci�n Seguridad para ver m�s detalles y ejemplos. Constante: Context.SECURITY_CREDENTIALS Default: El valor por defecto del proveedor. Ejemplo: Un char[] que contenga "secret." |
| java.naming.security.principal | Un string que especifica la identidad que realiza la autentificaci�n.
Puedes ir a la lecci�n Seguridad para ver m�s detalles y ejemplos. Constante: Context.SECURITY_PRINCIPAL Default: El valor por defecto del proveedor. Ejemplo: "cn=Directory Manager, o=JNDITutorial" |
| java.naming.security.protocol | Un string que especifica el protocolo de seguridad a utilizar. Puedes ir a
la lecci�n Seguridad
para ver m�s detalles y ejemplos.
Constante: Context.SECURITY_PROTOCOL Default: El valor por defecto del proveedor. Ejemplo: "ssl"1 |
�Propiedades de Entorno Espec�ficas del Servicio
Las propiedades de entorno espec�ficas del servicio son comunes entre diferentes proveedores de servicio que implementan un protocolo o servicio particular. Por ejemplo, varios proveedores de servicios diferentes podr�an implementar LDAP. Estos proveedores usar�an propiedades de entorno espec�ficas de LDAP.
Las propiedades espec�ficas del servicio tienen el prefijo "java.naming.servicio." Por ejemplo, las propiedades espec�ficas de LDAP tienen el prefijo "java.naming.ldap." y las propiedades espec�ficas CORBA tienen el prefijo "java.naming.corba." Observa que estas son propiedades de entorno relacionadas con el JNDI y son usadas por los proveedores de servicios JNDI. Un servicio o subsistema como CORBA o RMI podr�a definir otras propiedades no relacionadas con el JNDI.
Puedes ir a la lecci�n Miscel�nea para ver ejemplos de propiedades de entorno espec�ficas de LDAP.
�Propiedades de Entorno Espec�ficas de la Caracter�stica
Las propiedades de entorno espec�ficas de la caracter�stica son comunes a todos los proveedores de servicios que implementan una caracter�stica particular. Por ejemplo, el proveedor de servicio LDAP y un proveedor de servicio VendorX podr�an usar SASL para autentificaci�n. Estos proveedores usar�n propiedades de entorno espec�ficas de SASL cuando configuren esta caracter�stica.
Estas propiedades tienen el prefijo "java.naming.caracter�stica." Por ejemplo, las propiedades espec�ficas de SASL tienen el prefijo "java.naming.security.sasl." Observa que estas son propiedades de entorno relacionadas con el JNDI y usadas por los proveedores de servicios JNDI. Una caracter�stica o subsistema como SASL podr�a definir otras propiedades no relacionadas con el JNDI. Puedes ir a la lecci�n Seguridad para ver algunos ejemplos de propiedades espec�ficas de SASL.
�Propiedades de Entorno Espec�ficas del Proveedor
Las propiedades de etorno espec�ficas del proveedor son propiedades que s�n usadas por un s�lo proveedor. Por ejemplo, el proveedor de servicios LDAP de Sun tiene una propiedad para activar el seguimiento. (ver el ejemplo de la lecci�n FAQ.) Una propiedad espec�fica del proveedor deber�a tener un prefijo que refleje su identidad �nica, normalmente el nombre del paquete del proveedor de servicio.
Por ejemplo, la propiedad de seguimiento del proveedor LDAP de Sun se llama "com.sun.jndi.ldap.trace.ber".